トップへ戻るニュースフォーラムFLASH-ML 過去ログBak@Flaダウンロードよくある質問と答
ログイン
ユーザ名:

パスワード:


パスワード紛失

新規登録
メインメニュー
メイン
   迷える子羊の部屋【初心者専用】
     日付の加算について
投稿するにはまず登録を

スレッド表示 | 新しいものから 前のトピック | 次のトピック | 下へ
投稿者 スレッド
Åê¹ÆNo.36032
投稿日時: 2007-11-7 16:44
半人前
居住地: 主に福岡へ出没
投稿: 38
使用環境:
【WinXPAS2.0】
【Win7:FlashCS4:AS3.0】
エディター:FlashDevelop
日付の加算について
お聞きしたいことは表題の通りです……。

Date を使い今日の日付を取得、テキストとして表示することはできるのです。
その日付に単純に加算(例えば myDay+1 とするとか)することも出来るのです。
が、問題となるのは月の一番最後の日。
例えば 11/30 ならば翌日は 12/1 となります。
この加算の方法が思いつかずにおります。

その月の最終日を取得、今日の日付と照らし合わせて分岐させる、というのは

var myDate = new Date();
var myDay = myDate.getDate();
var myMonth = myDate.getMonth();
lastDay = new Date(myYear, myMonth+1, 0).getDate();
//
if(lastDay == myDay){
// ここが思いつきませんorz //
};


とすることで出来ることは解ったのですが


考え方のきっかけでもいいので、何かありませんでしょうか?
(カレンダー、日付、Date などでも検索してみたのですが見つかりませんでした)
野中文雄
Åê¹ÆNo.36033
投稿日時: 2007-11-7 16:50
ちょんまげら
居住地: 東京
投稿: 4247
使用環境:
CS4 .4.11 Vista Home Premium (SP1)
Re: 日付の加算について
その「一番最後の日」に、「myDay+1」とすると、どうなりますか?
引用:
葛さんは書きました:
Date を使い今日の日付を取得、テキストとして表示することはできるのです。
その日付に単純に加算(例えば myDay+1 とするとか)することも出来るのです。
が、問題となるのは月の一番最後の日。
...[中略]...
var myDate = new Date();
var myDay = myDate.getDate();
var myMonth = myDate.getMonth();
lastDay = new Date(myYear, myMonth+1, 0).getDate();


----------------
 

Åê¹ÆNo.36034
投稿日時: 2007-11-7 17:11
半人前
居住地: 主に福岡へ出没
投稿: 38
使用環境:
【WinXPAS2.0】
【Win7:FlashCS4:AS3.0】
エディター:FlashDevelop
Re: 日付の加算について
あ!!


if (lastDay == myDay) {
	nextDay = (myDay+1)-lastDay;
};



これで出来ますね!ありがとうございます!
複雑に考えていたようです。頭をもっと柔らかくしなくては

Åê¹ÆNo.36037
投稿日時: 2007-11-7 17:28
半人前
居住地: 主に福岡へ出没
投稿: 38
使用環境:
【WinXPAS2.0】
【Win7:FlashCS4:AS3.0】
エディター:FlashDevelop
Re: 日付の加算について
すみません。おかげさまで疑問は解決したのですが、解決する過程で新たな疑問がでてきました……。

var myDate = new Date();
var myDay = myDate.getDate();
var myMonth = myDate.getMonth();
var myYear = myDate.getFullYear();
lastDay = new Date(myYear, myMonth+1, 0).getDate();
//
if (lastDay == myDay) {
	nextDay = (myDay+1)-lastDay;
	this.nextDay_txt.text = nextDay;
} else {
	this.nextDay_txt.text = myDay;
}
//trace(lastDay);  
this.toDay_txt.text = 7;


上記コードで試していたのですが、lastDay==myDay が成立しない場合(30==7)に、テキストエリアに「1」という数字が入ってしまうのです。
条件を満たしていないならば myDay つまり「7」が入るのだと思っていたのですが。
何かスクリプトミスをしていますでしょうか??
ひろゆき
Åê¹ÆNo.36040
投稿日時: 2007-11-7 17:46
ちょんまげら
居住地: 大阪密林
投稿: 3702
使用環境:
10.3.9/10.6.2

CS3/CS4 Pro
Flex 2/3 SDK
Pro8.0
Pro7.2

FlashPlayer
7.0r24/8.0r24/9.0r115/10.0r45
Safari 1.3.2/4.0.4
Firefox 2.0.0.20/3.5.7

MacOS 9.2.2
Flash 4/5
Re: 日付の加算について
引用:
葛さんは書きました:
var myDate = new Date();
var myDay = myDate.getDate();
var myMonth = myDate.getMonth();
var myYear = myDate.getFullYear();
lastDay = new Date(myYear, myMonth+1, 0).getDate();
//
if (lastDay == myDay) {
	nextDay = (myDay+1)-lastDay;
	this.nextDay_txt.text = nextDay;
} else {
	this.nextDay_txt.text = myDay;
}
//trace(lastDay);  
this.toDay_txt.text = 7;

_root に、テキストフィールド(イスタンス名: nextDay_txt) を配置。
このスクリプトをそのまま使っても、7 と表示されます。

説明されていないことがありませんか?


----------------
質問する際は、回答者に具体的な情報を与えてくださいなのニャ!

Åê¹ÆNo.36041
投稿日時: 2007-11-7 17:56
半人前
居住地: 主に福岡へ出没
投稿: 38
使用環境:
【WinXPAS2.0】
【Win7:FlashCS4:AS3.0】
エディター:FlashDevelop
Re: 日付の加算について
失礼しました。
テキストエリアではなくテキストフィールドですね。


説明のことですが、ひろゆきさんの状態とほぼ変わるところはありません。
引用:
_root に、テキストフィールド(イスタンス名: nextDay_txt) を配置。


この状態にテキストフィールド(インスタンス名:toDay_txt)を並べておいてあるだけです。
コードもこれ以外は記載していませんし、_root上に上記二点のテキストフィールド以外のものもありません。
ファイルが何らかの理由でバクを起こしたのかと思い、新規flaにてまったく同じ条件にてやってみたのですが、結果は同じでした。
んんん???

あ、ですがひろゆきさんのところで7と表示されるのであれば、スクリプトミスということはなさそうですね。
ひろゆき
Åê¹ÆNo.36043
投稿日時: 2007-11-7 18:04
ちょんまげら
居住地: 大阪密林
投稿: 3702
使用環境:
10.3.9/10.6.2

CS3/CS4 Pro
Flex 2/3 SDK
Pro8.0
Pro7.2

FlashPlayer
7.0r24/8.0r24/9.0r115/10.0r45
Safari 1.3.2/4.0.4
Firefox 2.0.0.20/3.5.7

MacOS 9.2.2
Flash 4/5
Re: 日付の加算について
trace(myDay);
で、何と出力されますか?

バグうんぬんを疑う前に、自分の環境を疑うの先ですね。
Dateクラスで取得する日付時刻は、
FlashPlayer が動いている PC内の時計から取得します。
ひょっとして、PC内時計が11月1日になっていたりしませんか?


----------------
質問する際は、回答者に具体的な情報を与えてくださいなのニャ!

Åê¹ÆNo.36044
投稿日時: 2007-11-7 18:11
半人前
居住地: 主に福岡へ出没
投稿: 38
使用環境:
【WinXPAS2.0】
【Win7:FlashCS4:AS3.0】
エディター:FlashDevelop
Re: 日付の加算について
結果は 30 でした……。

どうやら結果確認のためにローカル時間を変更したまま戻し忘れていたようです
すみません。こんなあほなミスのためにお手数おかけしました。


そうですね。まずは自分で対処できること(環境やら)から確かめていくのがいいのだと、今回の件で学びました。
心のノートに書きとめておきます。
ひろゆき
Åê¹ÆNo.36045
投稿日時: 2007-11-7 18:20
ちょんまげら
居住地: 大阪密林
投稿: 3702
使用環境:
10.3.9/10.6.2

CS3/CS4 Pro
Flex 2/3 SDK
Pro8.0
Pro7.2

FlashPlayer
7.0r24/8.0r24/9.0r115/10.0r45
Safari 1.3.2/4.0.4
Firefox 2.0.0.20/3.5.7

MacOS 9.2.2
Flash 4/5
Re: 日付の加算について
引用:
そうですね。まずは自分で対処できること(環境やら)から確かめていくのがいいのだと、今回の件で学びました。
心のノートに書きとめておきます。

バグ!?と思った場合のほとんどは、自分のミスであることが多いです。
このフォーラムでも、検証なしに「バグ」とおっしゃっているケースの
8割くらいは、たいてい、何らかの記述ミスだったり、設定ミスだったりします。

ただし、自分の環境だけで起きているのか、そうでないのかは、
なかなか確認できないので、
再現できるような説明をしたうえで、こうしたフォーラムで公開しておけば、
どなたかが検証してくださる可能性はあるので、
そうすれば、ある特定の条件下で引き起こされる「バグ」なのか、
それとも、自分の環境だけで起きていることなのかの区別はつきますね。


----------------
質問する際は、回答者に具体的な情報を与えてくださいなのニャ!

野中文雄
Åê¹ÆNo.36046
投稿日時: 2007-11-7 18:25
ちょんまげら
居住地: 東京
投稿: 4247
使用環境:
CS4 .4.11 Vista Home Premium (SP1)
Re: 日付の加算について
何か判定の必要があるのでしょうか?
var myDate = new Date(2007, 10, 30);
trace(myDate);  // 出力: Fri Nov 30 00:00:00 GMT+0900 2007
var myDay = myDate.getDate();
var myMonth = myDate.getMonth();
var myYear = myDate.getFullYear();
var nNextDay:Number = myDay+1;
var next_date:Date = new Date(myYear, myMonth, nNextDay);
trace(next_date);  // 出力: Sat Dec 1 00:00:00 GMT+0900 2007

引用:
葛さんは書きました:
例えば 11/30 ならば翌日は 12/1 となります。
この加算の方法が思いつかずにおります。


----------------
 

(1) 2 »
スレッド表示 | 新しいものから 前のトピック | 次のトピック | トップ

投稿するにはまず登録を
 
Copyright (C) 2003 FLASH-japan. All rights reserved.
Powered by Xoops